(function($) {
    function init(target) {
        //注：此处还不能获取options
        //所以这里可以进行一些如设置样式、绑定事件的事情
        $(target).addClass('hello2', );
        return target;
    }

    $.fn.hello2 = function(options, param) {
        //如果options为string，则是方法调用，如$('#divMyPlugin').hello('sayHello');
        if (typeof options == 'string') {
            var method = $.fn.hello2.methods[options];
            if (method) {
                return method(this, param);
            } else {
                return this.hello(options, param); //调用继承hello的方法
            }
        }

        //否则是插件初始化函数，如$('#divMyPlugin').hello2();
        options = options || {};
        return this.each(function() {
            var state = $.data(this, 'hello');
            console.log(state);
            if (state) {
                $.extend(state.options, options);
                console.log(state);
            } else {
                //easyui的parser会依次计算options、initedObj
                state = $.data(this, 'hello2', {
                    options: $.extend({}, $.fn.hello2.defaults, $.fn.hello2.parseOptions(this), options)
                });
                console.log(state);
                init();
            }
            $(this).hello(state.options); //调用继承的hello的构造方法

            var $input = $('<input />');
            var current = this;
            $input
                .width(state.options.inputWidth)
                .val(state.options.to)
                .change(function() {
                    var val = $(this).val();
                    $.data(current, 'hello').options.to = val;
                    $.data(current, 'hello2').options.to = val;
                });

            $(this).append($input);
            $(this).css('color', state.options.myColor);
        })
    }

    //设置hello插件的一些方法的默认实现
    //注：第一个参数为当前元素对应的jQuery对象
    //【注意】这里的methods没有采用$.extend
    $.fn.hello2.methods = {
        options: function(jq) {
            var opts = jq.hello('options'); //获取hello继承的options
            return $.extend($.data(jq[0], 'hello2').options, {});
        }
    }

    //设置参数转换方法（使用$.extend从继承的hello那里拓展）
    $.fn.hello2.parseOptions = function(target) {
        var opts = $.extend({}, $.fn.hello.parseOptions(target), $.parser.parseOptions(target, [{ inputWidth: 'number' }])); //这里可以指定参数类型
        return opts;
    }

    //设置hello插件的一些默认值
    $.fn.hello2.defaults = {
        inputWidth: 100
    }

    //注册自定义easyui插件hello
    $.parser.plugins.push("hello2");
})(jQuery)